﻿using System.Collections.Generic;

namespace SdmxMl.Structure
{
    /// <summary>
    /// The Object ID is used to reference a particular Object within the SDMX
    /// Information Model's formalization of statistical exchanges.
    /// </summary>
    public enum ObjectIDType
    {
        Agency,
        ConceptScheme,
        Concept,
        Codelist,
        Code,
        KeyFamily,
        Component,
        KeyDescriptor,
        MeasureDescriptor,
        AttributeDescriptor,
        GroupKeyDescriptor,
        Dimension,
        TimeDimension, // NOT Official, found in ESTAT MSD ?!?
        Measure,
        Attribute,
        CategoryScheme,
        ReportingTaxonomy,
        Category,
        OrganisationScheme,
        DataProvider,
        MetadataStructure,
        FullTargetIdentifier,
        PartialTargetIdentifier,
        MetadataAttribute,
        DataFlow,
        ProvisionAgreement,
        MetadataFlow,
        ContentConstraint,
        AttachmentConstraint,
        DataSet,
        XSDataSet,
        MetadataSet,
        HierarchicalCodelist,
        Hierarchy,
        StructureSet,
        StructureMap,
        ComponentMap,
        CodelistMap,
        CodeMap,
        CategorySchemeMap,
        CategoryMap,
        OrganisationSchemeMap,
        OrganisationRoleMap,
        ConceptSchemeMap,
        ConceptMap,
        Process,
        ProcessStep,
    }

    public class ObjectIDTypeList : List<ObjectIDType>
    {
    }
}
